#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

// int sigemptyset(sigset_t *set);   清空信号集
// int sigfillset(sigset_t *set); 将linux下所有的信号都加入到信号集中
// int sigaddset(sigset_t *set, int signum); 在指定的信号集set中，添加一个指定的信号signum
// int sigdelset(sigset_t *set, int signum);在指定的信号集set中，删除一个指定的信号signum
// int sigismember(const sigset_t *set, int signum); 测试某一个信号是不是在集合中

int main(int argc, char *argv[]) // ./a.out 3445
{
    // 1）先定义一个信号集变量
    sigset_t set;
    // 2) 初始化（清空）
    sigemptyset(&set); // 清空信号集
    // 3）将信号 添加到集合中 SIGUSR1  SIGUSR2
    sigaddset(&set, SIGUSR1); // 在指定的信号集set中，添加一个指定的信号signum到集合中
    sigaddset(&set, SIGUSR2);

    // 4) 判断 SIGUSR2信号是否在集合中，如果在打印yes  ，否则 打印 no
    //  sigismember 信号在集合中 返回1  否则 返回 0
    if (sigismember(&set, SIGUSR2))
        printf("yes\n");
    else
        printf("no\n");

    return 0;
}